#pragma once

template<typename T>
class Singleton
{
public:
	static T* instance() 
	{
		if (!Instance)
		{
			Instance = new T();
		}
		return Instance; 
	}
protected:
	Singleton() {}

private:
	static T *Instance;
};
